home *** CD-ROM | disk | FTP | other *** search
/ PC World 2007 June / PCWorld_2007-06_cd.bin / system / sandra / san1135.exe / {app} / examples / mySQL Schema.sql < prev    next >
Text File  |  2006-12-24  |  4KB  |  176 lines

  1.  
  2. #
  3. # mySQL 3.23+/4.0+ Schema for Sandra Report (Unicode)
  4. #
  5. # Database is assumed to have been created already.
  6. # No size settings included, please add as required.
  7. #
  8. # Copyright (c) 1995-2007, SiSoftware Ltd.
  9. # All Rights Reserved.
  10.  
  11. #
  12. # Kill all tables
  13. #
  14.  
  15. DROP TABLE TItem;
  16.  
  17. DROP TABLE TControl;
  18.  
  19. DROP TABLE TItemGroup;
  20.  
  21. DROP TABLE TDevice;
  22.  
  23. DROP TABLE TClass;
  24.  
  25. DROP TABLE TModule;
  26.  
  27. DROP TABLE TReport;
  28.  
  29. DROP TABLE TIDCount;
  30.  
  31. #
  32. # Create new tables
  33. #
  34.  
  35. CREATE TABLE TReport (
  36.     ID            INT PRIMARY KEY,
  37.     
  38.     ProgVersion        INT NOT NULL,
  39.     BuildVersion        INT NOT NULL,
  40.     Completed        BIT NOT NULL
  41. );
  42.  
  43. CREATE TABLE TModule (
  44.     ID            INT PRIMARY KEY,
  45.     ReportID        INT NOT NULL,
  46.     
  47.     Capabilities        INT NOT NULL,
  48.     Name            VARCHAR(255) NOT NULL,
  49.     TypeID            INT NOT NULL,
  50.     HelpID            INT NOT NULL,
  51.  
  52.     CONSTRAINT        cnstMRID FOREIGN KEY(ReportID) REFERENCES TReport(ID)
  53. ) CHARACTER SET ucs2;
  54.  
  55. CREATE TABLE TClass (
  56.     ID            INT PRIMARY KEY,
  57.     ModuleID        INT NOT NULL,
  58.     
  59.     Name            VARCHAR(255) NOT NULL,
  60.     IconID            INT NOT NULL,
  61.     HelpID            INT NOT NULL,
  62.  
  63.     CONSTRAINT        cnstCMID FOREIGN KEY(ModuleID) REFERENCES TModule(ID)
  64. ) CHARACTER SET ucs2;
  65.  
  66. CREATE TABLE TDevice (
  67.     ID            INT PRIMARY KEY,
  68.     ModuleID        INT NOT NULL,
  69.     ClassID            INT,
  70.     
  71.     Name            VARCHAR(255) NOT NULL,
  72.     IconID            INT NOT NULL,
  73.     HelpID            INT NOT NULL,
  74.  
  75.     CONSTRAINT        cnstDMID FOREIGN KEY(ModuleID) REFERENCES TModule(ID),
  76.     CONSTRAINT        cnstDCID FOREIGN KEY(ClassID) REFERENCES TClass(ID)
  77. ) CHARACTER SET ucs2;
  78.  
  79. CREATE TABLE TItemGroup (
  80.     ID            INT PRIMARY KEY,
  81.     ModuleID        INT NOT NULL,
  82.     ClassID            INT,
  83.     DeviceID        INT,
  84.     
  85.     Name            VARCHAR(255) NOT NULL,
  86.     IconID            INT NOT NULL,
  87.     HelpID            INT NOT NULL,
  88.  
  89.     CONSTRAINT        cnstGMID FOREIGN KEY(ModuleID) REFERENCES TModule(ID),
  90.     CONSTRAINT        cnstGCID FOREIGN KEY(ClassID) REFERENCES TClass(ID),
  91.     CONSTRAINT        cnstGDID FOREIGN KEY(DeviceID) REFERENCES TDevice(ID)
  92. ) CHARACTER SET ucs2;
  93.  
  94. CREATE TABLE TItem (
  95.     ID            INT PRIMARY KEY,
  96.     ModuleID        INT NOT NULL,
  97.     ClassID            INT,
  98.     DeviceID        INT,
  99.     GroupID            INT,
  100.     
  101.     Name            VARCHAR(255) NOT NULL,
  102.     DataValue        VARCHAR(255),
  103.     IconID            INT NOT NULL,
  104.     TypeID            INT NOT NULL,
  105.     HelpID            INT NOT NULL,
  106.     
  107.     CONSTRAINT        cnstIMID FOREIGN KEY(ModuleID) REFERENCES TModule(ID),
  108.     CONSTRAINT        cnstICID FOREIGN KEY(ClassID) REFERENCES TClass(ID),
  109.     CONSTRAINT        cnstIDID FOREIGN KEY(DeviceID) REFERENCES TDevice(ID),
  110.     CONSTRAINT        cnstIGID FOREIGN KEY(GroupID) REFERENCES TItemGroup(ID)
  111. ) CHARACTER SET ucs2;
  112.  
  113. CREATE TABLE TControl (
  114.     ID            INT PRIMARY KEY,
  115.     ModuleID        INT NOT NULL,
  116.     ClassID            INT,
  117.     DeviceID        INT,
  118.     
  119.     Name            INT NOT NULL,
  120.     DataValID        INT NOT NULL,
  121.     DataValue        VARCHAR(255),
  122.     
  123.     CONSTRAINT        cnstTMID FOREIGN KEY(ModuleID) REFERENCES TModule(ID),
  124.     CONSTRAINT        cnstTCID FOREIGN KEY(ClassID) REFERENCES TClass(ID),
  125.     CONSTRAINT        cnstTDID FOREIGN KEY(DeviceID) REFERENCES TDevice(ID)
  126. ) CHARACTER SET ucs2;
  127.  
  128. CREATE TABLE TIDCount (
  129.     TableName        VARCHAR(10) PRIMARY KEY,
  130.     CurrentID        INT NOT NULL
  131. ) CHARACTER SET ucs2;
  132.  
  133. #
  134. # Set-up keys/indexes
  135. #
  136.  
  137.  
  138. CREATE INDEX ndxModuleParent ON TModule(ReportID);
  139.  
  140. CREATE INDEX ndxModuleType ON TModule(TypeID);
  141.  
  142. CREATE INDEX ndxClassParent ON TClass(ModuleID);
  143.  
  144. CREATE INDEX ndxClassType ON TClass(IconID);
  145.  
  146. CREATE INDEX ndxDeviceParent ON TDevice(ModuleID, ClassID);
  147.  
  148. CREATE INDEX ndxDeviceType ON TDevice(IconID);
  149.  
  150. CREATE INDEX ndxGroupParent ON TItemGroup(ModuleID, ClassID, DeviceID);
  151.  
  152. CREATE INDEX ndxGroupType ON TItemGroup(IconID);
  153.  
  154. CREATE INDEX ndxItemParent ON TItem(ModuleID, ClassID, DeviceID, GroupID);
  155.  
  156. CREATE INDEX ndxItemType ON TItem(IconID);
  157.  
  158. CREATE INDEX ndxControlParent ON TControl(ModuleID, ClassID, DeviceID);
  159.  
  160. CREATE INDEX ndxControlType ON TControl(Name);
  161.  
  162. CREATE INDEX ndxIDCount ON TIDCount(TableName);
  163.  
  164. #
  165. # Inserts
  166. #
  167.  
  168. INSERT INTO TIDCount (TableName, CurrentID) VALUES ('TItem', 1);
  169. INSERT INTO TIDCount (TableName, CurrentID) VALUES ('TControl', 1);
  170. INSERT INTO TIDCount (TableName, CurrentID) VALUES ('TItemGroup', 1);
  171. INSERT INTO TIDCount (TableName, CurrentID) VALUES ('TDevice', 1);
  172. INSERT INTO TIDCount (TableName, CurrentID) VALUES ('TClass', 1);
  173. INSERT INTO TIDCount (TableName, CurrentID) VALUES ('TModule', 1);
  174. INSERT INTO TIDCount (TableName, CurrentID) VALUES ('TReport', 1);
  175.  
  176.